nethackfandomcom-20200214-history
Source:NetHack 3.3.0/vmsconf.h
Below is the full text to vmsconf.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/vmsconf.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)vmsconf.h 3.3 98/07/16 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifdef VMS 6. #ifndef VMSCONF_H 7. #define VMSCONF_H 8. 9. /* 10. * Edit these to choose values appropriate for your site. 11. * WIZARD is the username allowed to use the debug option of nethack; no harm 12. * is done by leaving it as a username that doesn't exist at your site. 13. * HACKDIR can be overridden at run-time with the logical name HACKDIR, as in 14. * $ define hackdir disk$users:games.nethack 15. * Trailing NULs are present in the default values in order to make some 16. * extra room for patching longer values into an existing executable. 17. */ 18. #define Local_WIZARD "NHWIZARD\0\0\0\0" 19. #define Local_HACKDIR "DISK$USERS:GAMES.NETHACK.3-3-0.PLAY\0\0\0\0\0\0\0\0" 20. 21. /* 22. * This section cleans up the stuff done in config.h so that it 23. * shouldn't need to be modified. It's conservative so that if 24. * config.h is actually edited, the changes won't impact us. 25. */ 26. #ifdef UNIX 27. # undef UNIX 28. #endif 29. #ifdef HACKDIR 30. # undef HACKDIR 31. #endif 32. #ifdef WIZARD 33. # undef WIZARD 34. #endif 35. #ifdef WIZARD_NAME 36. # undef WIZARD_NAME 37. #endif 38. #define HACKDIR Local_HACKDIR 39. #ifndef KR1ED 40. # define WIZARD Local_WIZARD 41. # define WIZARD_NAME WIZARD 42. #else 43. # define WIZARD 1 44. # define WIZARD_NAME Local_WIZARD 45. #endif 46. 47. /* filenames require punctuation to avoid redirection via logical names */ 48. #undef RECORD 49. #define RECORD "record;1" /* scoreboard file (retains high scores) */ 50. #undef LOGFILE 51. #define LOGFILE "logfile;0" /* optional file (records all games) */ 52. 53. #define HLOCK "perm;1" /* an empty file used for locking purposes */ 54. 55. /* want compression--for level & save files--performed within NetHack itself */ 56. #ifdef COMPRESS 57. # undef COMPRESS 58. #endif 59. #ifndef INTERNAL_COMP 60. # define INTERNAL_COMP 61. #endif 62. 63. /* 64. * If nethack.exe will be installed with privilege so that the playground 65. * won't need to be left unprotected, define SECURE to suppress a couple 66. * of file protection fixups (protection of bones files and ownership of 67. * save files). 68. */ 69. /* #define SECURE */ 70. 71. /* 72. * Put the readonly data files into a single container rather than into 73. * separate files in the playground directory. 74. */ 75. #define DLB /* use data librarian code */ 76. 77. /* 78. * You may define TEXTCOLOR if your system has any terminals that recognize 79. * ANSI color sequences of the form ``where the first # is 80. * a number between 40 and 47 represented background color, and the second 81. * # is a number between 30 and 37 representing the foreground color. 82. * GIGI terminals and DECterm windows on color VAXstations support these 83. * color escape sequences, as do some 3rd party terminals and many micro 84. * computers. 85. */ 86. /* #define TEXTCOLOR */ 87. 88. /* 89. * If you define USE_QIO_INPUT, then you'll get raw characters from the 90. * keyboard, not unlike those of the unix version of Nethack. This will 91. * allow you to use the Escape key in normal gameplay, and the appropriate 92. * control characters in Wizard mode. It will work most like the unix version. 93. * It will also avoid "" being displayed when ^Y is pressed. 94. * 95. * Otherwise, the VMS SMG calls will be used. These calls block use of 96. * the escape key, as well as certain control keys, so gameplay is not 97. * the same, although the differences are fairly negligible. You must 98. * then use a VTxxx function key or two s to give an ESC response. 99. */ 100. #define USE_QIO_INPUT /* use SYS$QIOW instead of SMG$READ_KEYSTROKE */ 101. 102. /* 103. * Allow the user to decide whether to pause via timer or excess screen 104. * output for various display effects like explosions and moving objects. 105. */ 106. #define TIMED_DELAY /* enable the `timed_delay' run-time option */ 107. 108. /* 109. * If you define MAIL, then NetHack will capture incoming broadcast 110. * messages such as "New mail from so-and-so" and "Print job completed," 111. * and then deliver them to the player. For mail and phone broadcasts 112. * a scroll of mail will be created, which when read will cause NetHack 113. * to prompt the player for a command to spawn in order to respond. The 114. * latter capability will not be available if SHELL is disabled below. 115. * If you undefine MAIL, broadcasts will go straight to the terminal, 116. * resulting in disruption of the screen display; use to redraw. 117. */ 118. #define MAIL /* enable broadcast trapping */ 119. 120. /* 121. * SHELL enables the player to 'escape' into a spawned subprocess via 122. * the '!' command. Logout or attach back to the parent to resume play. 123. * If the player attaches back to NetHack, then a subsequent escape will 124. * re-attach to the existing subprocess. Any such subprocess left over 125. * at game exit will be deleted by an exit handler. 126. * SUSPEND enables someone running NetHack in a subprocess to reconnect 127. * to the parent process with the command; this is not very 128. * close to Unix job control, but it's better than nothing. 129. */ 130. #define SHELL /* do not delete the '!' command */ 131. #define SUSPEND /* don't delete the ^Z command, such as it is */ 132. 133. #define RANDOM /* use sys/share/random.c instead of vaxcrtl rand */ 134. 135. #define FCMASK 0660 /* file creation mask */ 136. 137. 138. /* 139. * The remainder of the file should not need to be changed. 140. */ 141. 142. /* data librarian defs */ 143. #ifdef DLB 144. # define DLBFILE "nh-data.dlb" 145. /* 146. * Since we can do without case insensitive filename comparison, 147. * avoid enabling it because that requires compiling and linking 148. * src/hacklib into util/dlb_main. 149. */ 150. /* # define FILENAME_CMP strcmpi */ /* case insensitive */ 151. #endif 152. 153. #if defined(VAXC) && !defined(ANCIENT_VAXC) 154. # ifdef volatile 155. # undef volatile 156. # endif 157. # ifdef const 158. # undef const 159. # endif 160. #endif 161. 162. #ifdef __DECC 163. # define STRICT_REF_DEF /* used in lev_main.c */ 164. #endif 165. #ifdef STRICT_REF_DEF 166. # define DEFINE_OSPEED 167. #endif 168. 169. #ifndef alloca 170. /* bison generated foo_yacc.c might try to use alloca() */ 171. # ifdef __GNUC__ 172. # define alloca __builtin_alloca 173. # else 174. # define ALLOCA_HACK /* used in util/panic.c */ 175. # endif 176. #endif 177. 178. #ifdef _DECC_V4_SOURCE 179. /* excludes some necessary typedefs when _DECC_V4_SOURCE is defined */ 180. #include 181. # ifndef __PID_T 182. # define __PID_T 183. typedef __pid_t pid_t; 184. # endif 185. # ifndef __UID_T 186. # define __UID_T 187. typedef __uid_t uid_t; 188. # endif 189. # ifndef __GID_T 190. # define __GID_T 191. typedef __gid_t gid_t; 192. # endif 193. #endif /* _DECC_V4_SOURCE */ 194. 195. #include 196. #if 0 /* is missing for old gcc versions; skip it to save time */ 197. #include 198. #else /* values needed from missing include file */ 199. # define O_RDONLY 0 200. # define O_WRONLY 1 201. # define O_RDWR 2 202. # define O_CREAT 0x200 203. # define O_TRUNC 0x400 204. #endif 205. 206. #ifndef REDO 207. # define Getchar nhgetch 208. #endif 209. #define tgetch vms_getchar 210. 211. #include "system.h" 212. 213. #define index strchr 214. #define rindex strrchr 215. 216. /* Use the high quality random number routines. */ 217. #if defined(RANDOM) 218. #define Rand() random() 219. /* VMS V7 adds these entry points to DECC$SHR; stick with the nethack-supplied 220. code to avoid having to deal with version-specific conditionalized builds */ 221. #define random nh_random 222. #define srandom nh_srandom 223. #define initstate nh_initstate 224. #define setstate nh_setstate 225. #else 226. #define Rand() rand() 227. #endif 228. 229. #ifndef __GNUC__ 230. # ifndef bcopy 231. #define bcopy(s,d,n) memcpy((d),(s),(n)) /* vaxcrtl */ 232. # endif 233. #endif 234. #define abort() vms_abort() /* vmsmisc.c */ 235. #define creat(f,m) vms_creat(f,m) /* vmsfiles.c */ 236. #define exit(sts) vms_exit(sts) /* vmsmisc.c */ 237. #define getuid() vms_getuid() /* vmsunix.c */ 238. #define link(f1,f2) vms_link(f1,f2) /* vmsfiles.c */ 239. #define open(f,k,m) vms_open(f,k,m) /* vmsfiles.c */ 240. /* #define unlink(f0) vms_unlink(f0) /* vmsfiles.c */ 241. #ifdef VERYOLD_VMS 242. #define unlink(f0) delete(f0) /* vaxcrtl */ 243. #else 244. #define unlink(f0) remove(f0) /* vaxcrtl, decc$shr */ 245. #endif 246. #define C$$TRANSLATE(n) c__translate(n) /* vmsfiles.c */ 247. 248. /* VMS global names are case insensitive... */ 249. #define An vms_an 250. #define The vms_the 251. #define Shk_Your vms_shk_your 252. 253. /* avoid global symbol in Alpha/VMS V1.5 STARLET library (link trouble) */ 254. #define ospeed vms_ospeed 255. 256. /* used in several files which don't #include "extern.h" */ 257. extern void FDECL(vms_exit, (int)); 258. extern int FDECL(vms_open, (const char *,int,unsigned)); 259. 260. #endif /* VMSCONF_H */ 261. #endif /* VMS */ [[Category:NetHack 3.3.0 source code|vmsconf.h]